Conventionally, there has been an IP (Internet Protocol) multicast as a packet transmitting method of the third layer of the OSI (Open Systems Interconnection) reference model. An IP multicast is a method whereby a group IP address denoting a group of terminals is specified in the destination address field of a packet, a router that receives a packet replicates the packet appropriately, and then the packet is transmitted to a plurality of terminals beyond the router by means of transfer. With an IP multicast, a packet received by a router is finally transferred to a network to which a terminal of the destination group is connected via a plurality of routers. When an IP multicast packet is received by a certain router, the router searches its routing table and determines the transfer destination interface. If this interface is connected to a broadcast media, the packet is transferred by means of a link level multicast distribution method.
This link level multicast (hereinafter referred to as “LMC”) distribution method is a distribution method whereby a multicast address is specified as the destination address in a packet of the second layer of the OSI reference model, and the packet arrives simultaneously at a plurality of terminals connected to the same broadcast media. Therefore, according to LMC, if a plurality of destination group terminals and relay routers are connected to one broadcast media, a packet can be distributed efficiently. A broadcast media is a network in which the same media (cable and frequency band) is shared by a plurality of terminals, examples being an Ethernet (registered trademark) stipulated by IEEE802.3 and a radio LAN (Local Area Network) stipulated by IEEE802 11b.
However, with an IP multicast, it is necessary to assign an IP multicast address to each distribution group, and it is difficult to cope with dynamic changes in the component nodes of a group. Furthermore, it is necessary to make IP multicast address settings in the routing tables of all the routers in a route.
Thus, the explicit multicast distribution method (hereinafter abbreviated to “XCAST”) shown in Non-patent Document 1 and Patent Document 1 has been proposed as a different third layer packet distribution method.
FIG. 1 is a drawing showing the format of an XCAST (Explicit Multicast) 6 packet. This XCAST6 performs communication using IPv6 (Internet Protocol version 6) as an IP address.
As shown in FIG. 1, XCAST header (XCASTHdr) 1401 is composed of IPv6 header (IPv6Hdr) 1402 and routing header (RoutingHdr) 1403. The IP address of the transmission source node of a packet is written in IPv6 header 1402, and a multicast address indicating that this is XCAST6 is written in destination address 1405.
In routing header 1403 are written all of destination addresses 0 through n (1407) and destination ports 0 through n (1408) that are multi-point transmission destinations. In destination bit map 1406, bits are specified corresponding to destination nodes, and a distribution-unperformed destination node and distribution-completed destination node are made explicit. Specifically, “1” is set for a distribution-unperformed destination node, and “0” is set for a distribution-completed destination node. In the following description, destination bit map 1406 and destination addresses 1407 are together referred to as a “destination list”.
With an XCAST, when distributing a packet to a plurality of terminals, the transmitting apparatus creates a destination list in the packet, and transmits to the first node on the destination list. When an XCAST router receives that packet, it references its routing table, and determines a transfer destination interface to a link to which a distribution-unperformed destination node in the destination list connects. Then that router replicates that packet timely, amends only a bit corresponding to a distribution-unperformed destination node in destination bit map 1406 to “1” indicating nondistribution, and then outputs the packet to a distribution-unperformed destination node positioned at the top of the destination list. When a terminal that is a destination node receives this, it amends a bit corresponding to itself in destination bit map 1406 to “0” indicating completion of distribution, and transmits that packet to a terminal that is a distribution-unperformed destination node. By this means, even though an IP multicast address is not used, it is possible to transmit the same data to terminals of a plurality of destination groups in the same way as in an IP multicast by having one packet sequentially provided to a plurality of terminals.
However, with a distribution method using an XCAST, if distribution is performed by means of a link level multicast distribution method when the transfer destination interface of a router is a broadcast media, there is a risk of a plurality of XCAST packets continuing to loop in that broadcast media. This is because a router that receives an XCAST packet attempts to transfer the received packet to a distribution-unperformed node on the destination list, and transmits an XCAST packet from the receiving interface.
Patent Document 2 discloses a method whereby distribution between XCAST-compatible routers is performed by means of a multicast as a packet distribution method that solves this problem.
FIG. 2 is a configuration diagram of a conventional IP network.
In FIG. 2, routers 1 through 4 (1501 through 1504), a transmitting apparatus (1511), and receiving apparatuses 1 through 4 (1512 through 1515) support an XCAST. The operation when the same data is transmitted from the transmitting apparatus (1511) to all the receiving apparatuses at this time will now be described using the accompanying drawings.
FIG. 3 is a sequence diagram showing a data distribution operation by means of an XCAST.
In FIG. 3, the transmitting apparatus (1511) generates an XCAST packet in which the addresses of receiving apparatuses 1 through 4 (1512 through 1515) are written in the destination list, and transmits this to router 1 (1501) (step S1601).
Next, router 1 determines a next hop node for transmitting a received XCAST packet to a distribution-unperformed destination node based on the routing table. At this time, if the link level unicast addresses of routers 2 through 4 (1502 through 1504) that are the next hop nodes are unknown, router 1 (1501) searches using a Neighbor Solicitation message and Neighbor Advertisement message.
Next, router 1 (1501) replicates the received packet for each next hop node, and amends the destination bit map so that only the bit which is corresponding to a distribution-unperformed destination node that is an object of relay by those next hop nodes becomes “1”. Then a unicast address obtained by searching is set as a destination address, and an XCAST packet is transmitted to each next hop node (steps S1602, S1605, and S1607).
The contents of an XCAST packet transmitted to a next hop node from router 1 (1501) here is shown in FIG. 4.
As shown in FIG. 4A, packets to receiving apparatus (hereinafter also referred to as “R”) 1 and receiving apparatus 2 are combined into one packet with router (hereinafter also referred to as “RT”) 2 as the next hop node. Also, in the destination bit map, only bits corresponding to receiving apparatus 1 (R1) and receiving apparatus 2 (R2) are set to “1”, and the other destination bits are set to “0”. Similarly, as shown in FIG. 4B, for a packet to receiving apparatus 3 (R3), router 3 (RT3) is taken to be the next hop node, and only the bit corresponding to receiving apparatus 3 (R3) is set to “1” in the destination bit map. In the same way, as shown in FIG. 4C, for a packet to receiving apparatus 4 (R4), router 4 (RT4) is taken to be the next hop node, and only the bit corresponding to receiving apparatus 4 (R4) is set to “1” in the destination bit map.
Next, router 2, on receiving this packet, transmits it to the first distribution-unperformed destination node on the destination list (step S1603) On receiving this packet, receiving apparatus 1 amends the bit corresponding to itself in destination bit map 1406 to “0”, and transfers the packet to receiving apparatus 2 for which “1” indicating a distribution-unperformed destination node is written (step S1604).
In a similar way, router 3 and router 4 transfer a received packet to receiving apparatuses 3 and 4 that are both distribution-unperformed destination nodes (steps S1606 and S1608).
Thus, according to the method described in Patent Document 2, by combining an explicit multicast and a unicast, the same data can be distributed to all receiving apparatuses without packet looping occurring on the broadcast media.
Non-patent Document 1: Y. Imai, M. Shin and Y. Kim, “XCAST6: eXplict Multicast on IPv6”, IEEE/IPSJ SAINT 2003 Workshop 4, IPv6 and Applications, Orland, January 2003
Patent Document 1: Japanese Patent Application Laid-Open No. 2000-354063
Patent Document 2: US Patent Application Laid-Open No. 2003/0046425 Specification